home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / lamstex / inputs / book.stf < prev    next >
Text File  |  1991-09-06  |  11KB  |  361 lines

  1. % BOOK.STF  VERSION 2.0
  2. % COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
  3. % ALL RIGHTS RESERVED
  4.  
  5. % IF THIS FILE IS MODIFIED IN ANY WAY, IT SHOULD BE GIVEN A DIFFERENT NAME !
  6.  
  7. \catcode`\@=11
  8. \let\alloc@\alloc@@
  9.  
  10. \hsize=29pc
  11. \vsize=40pc
  12. \normallineskiplimit=1pt
  13. \parindent=10pt
  14. \advance\hoffset 42pt
  15. \advance\voffset 90pt
  16.  
  17. \def\makeheadline{\hbox{\botsmash{\line{\vbox to8.5pt{}\the\headline}}}%
  18.  \nointerlineskip\vskip26pt}
  19. \def\makefootline{\baselineskip=2.5pc\relax\line{\the\footline}}
  20.  
  21. \newnumstyle\page\roman
  22.  
  23. \font@\ninerm=cmr9
  24. \font@\eightrm=cmr8
  25. \font@\sixrm=cmr6
  26. \font@\eighti=cmmi8   \skewchar\eighti='177
  27. \font@\sixi=cmmi6     \skewchar\sixi='177
  28. \font@\ninesy=cmsy9   \skewchar\ninesy='60
  29. \font@\eightsy=cmsy8  \skewchar\eightsy='60
  30. \font@\sixsy=cmsy6    \skewchar\sixsy='60
  31. \font@\eightbf=cmbx8
  32. \font@\sixbf=cmbx6
  33. \font@\eightit=cmti8
  34. \font@\eightsl=cmsl8
  35. \font@\eighttt=cmtt8
  36.  
  37. \ifmsamloaded@
  38.  \font@\eightmsa=msam8
  39.  \font@\sixmsa=msam6
  40. \fi
  41.  
  42. \ifmsbmloaded@
  43.  \font@\eightmsb=msbm8
  44.  \font@\sixmsb=msbm6
  45. \fi
  46.  
  47. \ifeufmloaded@
  48.  \font@\eighteufm=eufm8
  49.  \font@\sixeufm=eufm6
  50. \fi
  51.  
  52. \ifcmmibloaded@
  53.  \font@\eightcmmib=cmmib8 \skewchar\eightcmmib='177
  54.  \font@\sixcmmib=cmmib6 \skewchar\sixcmmib='177
  55. \fi
  56.  
  57. \ifcmbsyloaded@
  58.  \font@\eightcmbsy=cmbsy8 \skewchar\eightcmbsy='60
  59.  \font@\sixcmbsy=cmbsy6 \skewchar\sixcmbsy='60
  60. \fi
  61.  
  62. \newskip\ttglue@
  63.  
  64. \def\tenpoint{\def\pointsize@{10}%
  65.  \normalbaselineskip12\p@
  66.  \abovedisplayskip12\p@ plus3\p@ minus9\p@
  67.  \belowdisplayskip12\p@ plus3\p@ minus9\p@
  68.  \abovedisplayshortskip\z@ plus3\p@
  69.  \belowdisplayshortskip7\p@ plus3\p@ minus4\p@
  70.  \textonlyfont@\rm\tenrm
  71.  \textonlyfont@\it\tenit
  72.  \textonlyfont@\sl\tensl
  73.  \textonlyfont@\bf\tenbf
  74.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  75.   \let\big\tenbig@
  76.   \textfont\z@\tenrm  \scriptfont\z@\sevenrm  \scriptscriptfont\z@\fiverm
  77.   \textfont\@ne\teni  \scriptfont\@ne\seveni  \scriptscriptfont\@ne\fivei
  78.   \textfont\tw@\tensy \scriptfont\tw@\sevensy \scriptscriptfont\tw@\fivesy
  79.   \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  80.   \textfont\itfam\tenit
  81.   \textfont\slfam\tensl
  82.   \textfont\bffam\tenbf \scriptfont\bffam\sevenbf
  83.    \scriptscriptfont\bffam\fivebf
  84.   \ifmsamloaded@
  85.    \textfont\msafam\tenmsa \scriptfont\msafam\sevenmsa
  86.     \scriptscriptfont\msafam\fivemsa
  87.   \fi
  88.   \ifmsbmloaded@
  89.    \textfont\msbfam\tenmsb \scriptfont\msbfam\sevenmsb
  90.     \scriptscriptfont\msbfam\fivemsb
  91.   \fi
  92.   \ifeufmloaded@
  93.    \textfont\eufmfam\teneufm \scriptfont\eufmfam\seveneufm
  94.     \scriptscriptfont\eufmfam\fiveeufm
  95.   \fi
  96.   \ifcmmibloaded@
  97.    \textfont\cmmibfam\tencmmib \scriptfont\cmmibfam\sevencmmib
  98.     \scriptscriptfont\cmmibfam\fivecmmib
  99.   \fi
  100.   \ifcmbsyloaded@
  101.    \textfont\cmbsyfam\tencmbsy \scriptfont\cmbsyfam\sevencmbsy
  102.     \scriptscriptfont\cmbsyfam\fivecmbsy
  103.   \fi
  104.  \fi
  105.  \let\tt\tentt
  106.  \tt\ttglue@.5emminus.15em
  107.  \setbox\strutbox\hbox{\vrule\height8.5\p@\depth3.5\p@\width\z@}%
  108.  \setbox\strutbox@\hbox{\vrule\height8\p@\depth3\p@\width\z@}%
  109.  \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}
  110.  
  111. \def\tenbig@#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
  112.  
  113. \tenpoint
  114.  
  115. \def\eightpoint{\def\pointsize@{8}%
  116.  \normalbaselineskip10\p@
  117.  \abovedisplayskip10\p@ plus2.4\p@ minus7.2\p@
  118.  \belowdisplayskip10\p@ plus2.4\p@ minus7.2\p@
  119.  \abovedisplayshortskip\z@ plus2.4\p@
  120.  \belowdisplayshortskip5.6\p@ plus2.4\p@ minus3.2\p@
  121.  \textonlyfont@\rm\eightrm
  122.  \textonlyfont@\it\eightit
  123.  \textonlyfont@\sl\eightsl
  124.  \textonlyfont@\bf\eightbf
  125.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  126.   \let\big\eightbig@
  127.   \textfont\z@\eightrm \scriptfont\z@\sixrm  \scriptscriptfont\z@\fiverm
  128.   \textfont\@ne\eighti \scriptfont\@ne\sixi  \scriptscriptfont\@ne\fivei
  129.   \textfont\tw@\eightsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivesy
  130.   \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  131.   \textfont\itfam\eightit
  132.   \textfont\slfam\eightsl
  133.   \textfont\bffam\eightbf \scriptfont\bffam\sixbf
  134.    \scriptscriptfont\bffam\fivebf
  135.   \ifmsamloaded@
  136.    \textfont\msafam\eightmsa \scriptfont\msafam\sixmsa
  137.     \scriptscriptfont\msafam\fivemsa
  138.   \fi
  139.   \ifmsbmloaded@
  140.    \textfont\msbfam\eightmsb \scriptfont\msbfam\sixmsb
  141.     \scriptscriptfont\msbfam\fivemsb
  142.   \fi
  143.   \ifeufmloaded@
  144.    \textfont\eufmfam\eighteufm \scriptfont\eufmfam\sixeufm
  145.     \scriptscriptfont\eufmfam\fiveeufm
  146.   \fi
  147.   \ifcmmibloaded@
  148.    \textfont\cmmibfam\eightcmmib \scriptfont\cmmibfam\sixcmmib
  149.     \scriptscriptfont\cmmibfam\fivecmmib
  150.   \fi
  151.   \ifcmbsyloaded@
  152.    \textfont\cmbsyfam\eightcmbsy \scriptfont\cmbsyfam\sixcmbsy
  153.     \scriptscriptfont\cmbsyfam\fivecmbsy
  154.   \fi
  155.  \fi
  156.  \let\tt\eighttt
  157.  \tt\ttglue@.4emminus.12em
  158.  \setbox\strutbox\hbox{\vrule\height7\p@\depth3\p@\width\z@}%
  159.  \setbox\strutbox@\hbox{\vrule\height6.5\p@\depth2.5\p@\width\z@}%
  160.  \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}
  161.  
  162. \def\eightbig@#1{{\hbox{$\textfont\z@\ninerm\textfont\tw@\ninesy
  163.  \left#1\vbox to6.5\p@{}\right.\n@space$}}}
  164.  
  165. {\catcode` =\active
  166. \gdef\litcodes@@{\def {\penalty\z@\hskip\ttglue@}}}
  167.  
  168. \def\LamSTeX{L\kern-.4em\raise.3ex\hbox{$\ssize\Cal A$}%
  169.  \DN@{10}\ifx\next@\pointsize@\kern-.25em\else\kern-.3em\fi
  170.  \lower.4ex\hbox{\DN@{10}\ifx\next@\pointsize@\eightsy\else\sixsy\fi M}%
  171.  \kern-.1em{$\Cal S$}-\TeX}
  172.  
  173. \font\Bf=cmbx10 scaled \magstep1
  174. \font\BF=cmbx10 scaled \magstep3
  175.  
  176. \newif\ifspecialpage@
  177.  
  178. \let\headline@\relax
  179.  
  180. \def\makepiece#1{\par\vfill\break
  181.  \global\specialpage@true
  182.  \gdef\headline@{\ignorespaces#1\unskip}%
  183.  \centerline{\BF\uppercase{\ignorespaces#1\unskip}}%
  184.  \vskip30\p@ plus10\p@ minus 10\p@}
  185.  
  186. \def\dotleaders{\leaders\hbox to10pt{\rm\hfil.\hfil}\hfil}%
  187. \def\Page@#1#2#3#4{\hbox{\rm#3#2{#1}#4\unskip}}%
  188. \long\def\widerthanhsize@#1#2#3#4{\test@true
  189.  \setbox\z@\vbox{\hsize\maxdimen
  190.   \rm\noindent@#1#2#3#4\par\setboxzl@}%
  191.  \ifdim\wdz@=\z@\setboxz@h{\rm#1#2#3#4}\ifdim\wdz@>\hsize\else
  192.  \test@false\fi\fi}%
  193. \long\def\setentry@#1#2#3#4{%
  194.  \widerthanhsize@{#1}{#2}{#3}{#4}%
  195.  \iftest@
  196.   \longentry@{#1}{#2}{#3}{#4}%  
  197.  \else
  198.   \hbox to\hsize{\rm\strut#1#2#3#4\strut}%
  199.  \fi}%
  200. \def\endstrut{\lower\dp\strutbox\vbox to\dp\strutbox{}}
  201. \newdimen\thehang@
  202. \long\def\longentry@#1#2#3#4{\setboxz@h{#1}%
  203.  \thehang@\wdz@\advance\thehang@10\p@
  204.  \setboxz@h{#4}%
  205.  \setbox\z@\vbox{\advance\hsize-\wdz@\advance\hsize-20\p@
  206.   \normalbaselines
  207.   \hangafter\@ne\hangindent\thehang@
  208.   \vskip-\parskip
  209.   \noindent@\rm\vbox to\ht\strutbox{}\hbox{#1}#2\vphantom{#3#4}\endstrut}%
  210.  \setbox\z@\vbox{\unvbox\z@
  211.   \setboxzl@ 
  212.   \hbox to\hsize{\kern\thehang@\unhbox\z@\unskip\unskip#3#4\endstrut}%  
  213.   }%
  214.  \unvbox\z@}%
  215. \newif\ifemptynumber@
  216. \def\Style@{\emptynumber@false\FN@\Style@@}%
  217. \def\Style@@{\ifx\next"\expandafter\Style@@@\else\expandafter\Style@@@@\fi}%
  218. \def\Style@@@@#1\Style@{\style{#1}}%
  219. \def\Style@@@"#1"\Style@{\DN@{#1}\ifx\next@\empty\emptynumber@true
  220.  \else#1\fi}%
  221.  
  222. \expandafter\def\csname HL@S0\endcsname#1{#1\/}
  223. \expandafter\def\csname HL@S1\endcsname#1{#1\null.}
  224. \expandafter\def\csname hl@S1\endcsname#1{#1\null.}
  225. \expandafter\def\csname hl@S2\endcsname#1{#1\null.}
  226. \expandafter\def\csname hl@S3\endcsname#1{#1\/}
  227. \expandafter\def\csname hl@S4\endcsname#1{#1\/}
  228.  
  229. \def\maketoc@W{Contents}
  230.  
  231. \newif\ifbib@
  232.  
  233. \def\maketoc{\checkmainfile@\par\vfill\break
  234.  \begingroup
  235.  \unlabel@\noset@\let\nopunct\relax\let\nospace\relax\let\overlong\relax
  236.  \everypar{}\parindent\z@\lineskiplimit\z@
  237.  \def\HL##1##2##3##4\Page##5##6##7##8{\def\HLlevel@{##1}%
  238.   \ifnum\HLlevel@=\z@
  239.    \bigbreak\bigskip
  240.    \begingroup
  241.     \def\\{\unskip\space\ignorespaces}%
  242.     \setentry@{\Bf\def\next@{##2}\ifx\next@\empty\else\uppercase{##2} \fi 
  243.     \let\style\HL@@S\hbox to35pt{\Style@##3\Style@\hss}\ifemptynumber@
  244.      \nobreak\hskip-35pt\fi\uppercase{\ignorespaces##4\unskip}}{}\hfil{}%
  245.    \endgroup
  246.    \nobreak\smallskip
  247.   \else
  248.   \ifnum\HLlevel@=\@ne
  249.    \bigbreak
  250.    \begingroup
  251.    \def\\{\unskip\space\ignorespaces}%
  252.    \setentry@{\bf\def\next@{##2}\ifx\next@\empty\else##2 \fi
  253.     \let\style\HL@@S\Style@##3\Style@
  254.     \ifemptynumber@\else\space\fi}%
  255.     {\bf\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  256.    \endgroup
  257.    \penalty500 \smallskip
  258.   \else
  259.    \Err@{\string\HL##1 not defined in this style}%
  260.   \fi\fi}%
  261.  \def\hl##1##2##3##4\Page##5##6##7##8{\def\hllevel@{##1}%
  262.   \ifnum\hllevel@<\thr@@
  263.     \setentry@{\rm\kern10\p@\let\style\hl@@S\Style@##3\Style@
  264.     \ifemptynumber@\else\space\fi}%
  265.     {\rm\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  266.    \vskip\parskip
  267.   \else
  268.   \ifnum\hllevel@<5
  269.     \setentry@{}{\kern\hllevel@ em\quad 
  270.      \rm\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  271.    \vskip\parskip
  272.   \else
  273.    \Err@{\string\hl##1 not defined in this style}%
  274.   \fi\fi}%
  275.  \def\NameHL##1##2{\def##2####1####2####3\Page{%
  276.   \HL{##1}{####1}{####2}####3\Page}}%
  277.  \def\Namehl##1##2{\def##2####1####2####3\Page{%
  278.   \hl{##1}{####1}{####2}####3\Page}}%
  279.  \NameHL0\part
  280.  \NameHL1\chapter \Namehl1\section \Namehl2\subsection \Namehl3\topic
  281.  \Namehl4\subtopic
  282.  \def\makebib##1\Page##2##3##4##5{\bigbreak\bigskip\bigskip
  283.   \setentry@{\Bf##1}{}{\dotleaders}{\Page@{##2}{##3}{##4}{##5}}%
  284.   \bib@true}%
  285.  \let\bibliography\makebib
  286.  \def\makeindex##1\Page##2##3##4##5{\ifbib@\bigskip\else
  287.   \bigbreak\bigskip\bigskip\fi
  288.   \setentry@{\Bf##1}{}{\dotleaders}{\Page@{##2}{##3}{##4}{##5}}}%
  289.  \global\specialpage@true
  290.  \gdef\headline@{\maketoc@W}%
  291.  \centerline{\BF\uppercase\expandafter{\maketoc@W}}%
  292.  \vskip30\p@ plus 10\p@ minus 10\p@
  293.  \input\mainfile@.toc
  294.  \endgroup}
  295.  
  296.  
  297.  
  298.  
  299. \def\makelistFigures{\makelist\c{F}List of Figures\endmakelist}
  300. \def\makelistTables{\makelist\c{T}List of Tables\endmakelist}
  301.  
  302. \def\makelist\c#1#2\endmakelist{\checkmainfile@
  303.  \par\vfill\break
  304.  \begingroup
  305.  \unlabel@\noset@\let\nopunct\relax\let\nospace\relax\let\overlong\relax
  306.  \lineskiplimit\z@
  307.  \def\listclass@{#1}%
  308.  \def\island{\FN@\island@}%
  309.  \def\island@{\ifx\next\at@\expandafter\island@@\else
  310.   \expandafter\island@@@\fi}%
  311.  \def\island@@\at@##1\c##2##3##4##5\Page##6##7##8##9{%
  312.   \def\islandtype@{##1}%
  313.   \def\next@{##2}%
  314.   \ifx\next@\listclass@
  315.    \setentry@{\rm##3 \let\style\island@@@S\Style@##4\Style@
  316.     \ifemptynumber@\else\space\fi}%
  317.     {\rm\ignorespaces##5\unskip}\dotleaders{\Page@{##6}{##7}{##8}{##9}}%
  318.    \vskip\parskip
  319.   \fi}%
  320.  \def\island@@@\c##1##2##3##4\Page##5##6##7##8{%
  321.   \island@@\at@\island\c{##1}{##2}{##3}##4\Page{##5}{##6}{##7}{##8}}%
  322.  \def\newisland##1\c##2##3{\def##1####1####2\Page####3####4####5####6{%
  323.   \island\at@##1\c{##2}{##3}{####1}####2\Page{####3}{####4}{####5}{####6}}}%
  324.  \newisland\Figure\c{F}{Figure}%
  325.  \newisland\Table\c{T}{Table}%
  326.  \global\specialpage@true
  327.  \gdef\headline@{\ignorespaces#2\unskip}%
  328.  \vbox{\Let@\tabskip\centering@\halign to\hsize
  329.   {\BF\baselineskip22pt\hfil\ignorespaces##\unskip\hfil\cr
  330.    \uppercase{\ignorespaces#2\unskip}\crcr}}%
  331.  \vskip30\p@ plus10\p@ minus10\p@
  332.  \input\mainfile@.tic
  333.  \endgroup}
  334.  
  335. \footline={\ifspecialpage@\hfil\ninerm\page@S{\page@P\page@N{\number\page@C}%
  336.  \page@Q}\hfil\fi
  337.  \global\specialpage@false}
  338.  
  339. \headline={\unlabel@\noset@\def\\{\unskip\space\ignorespaces}%
  340.  \ifspecialpage@\hfil
  341.  \else
  342.   \ifodd\pageno
  343.    \hfil
  344.    \smc\headline@
  345.    \hfil
  346.    \llap{\tenpoint\folio}%
  347.   \else
  348.    \rlap{\tenpoint\folio}%
  349.    \hfil
  350.    \smc\headline@
  351.    \hfil
  352.   \fi
  353.  \fi}
  354.  
  355. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  356.  \ch@ck#1#4#2\allocationnumber=\count1#1
  357.  \global#3#5=\allocationnumber
  358.  \wlog{\string#5=\string#2\the\allocationnumber}}
  359.  
  360. \catcode`\@=\active
  361.